package gp;

public class Symbol {
	String simbolo;
	int valor;
	int degree;
	static int valor_EMPTY_terminal = 0;
	static void setValor_EMPTY_terminal(int valor_EMPTY_terminal) {
		Symbol.valor_EMPTY_terminal = valor_EMPTY_terminal;
	}

	static void setValor_EMPTY_nonTerminal(int valor_EMPTY_nonTerminal) {
		Symbol.valor_EMPTY_nonTerminal = valor_EMPTY_nonTerminal;
	}

	static int valor_EMPTY_nonTerminal = 0;
	boolean is_terminal;
	
	public Symbol(String simbolo, int valor, int degree){
		this.simbolo = simbolo;
		this.valor = valor;
		this.degree = degree;
		this.is_terminal = (degree == 0);
	}
	
	public String toString(){
		return simbolo + " " + valor;
	}
	
	/*
	 * Creates the empty symbol
	 */
	public Symbol(int degree){
		this.simbolo = "EMPTY";
		if(degree == 0){
			this.valor = valor_EMPTY_terminal;
		}
		else if (degree == 2) {
			this.valor = valor_EMPTY_nonTerminal;
		}
		this.degree = degree;
		this.is_terminal = true;
	}
	public String getSimbolo() {
		return simbolo;
	}

	public void setSimbolo(String simbolo) {
		this.simbolo = simbolo;
	}

	public int getValor() {
		return valor;
	}

	public void setValor(int valor) {
		this.valor = valor;
	}

	public boolean isIs_terminal() {
		return is_terminal;
	}

	public void setIs_terminal(boolean is_terminal) {
		this.is_terminal = is_terminal;
	}

	public int getDegree() {
		return degree;
	}

	public void setDegree(int degree) {
		this.degree = degree;
	}

}
